package javaCode.chapter09.static_;

public class StaticMethodDetail {
    public static void main(String[] args) {

        D.hi();
        //非静态方法，不能通过类名来调用
        //D.say(); 错误，需要先创建对象，再调用
        new D().say();
    }
}

class D {
    private int n1 = 10;
    private static int n2 = 20;

    public void say() {
    }

    public static void hi() {//静态方法/类方法
        //类方法中不允许使用和对象有关的关键字，
        //比如this和super。普通方法(成员方法)可以
        //System.out.println(this.n1);
    }

    //类方法中(静态方法)中，只能访问 静态变量 或静态方法
    //口诀：静态方法只能调用静态成员.
    public static void hello() {
        System.out.println(n2);
        System.out.println(D.n2);
        hi();
        //say(); 错，不能访问非静态方法
    }

    //普通方法 既可以访问 静态方法，也可以访问非静态方法
    public void ok() {
        //非静态成员
        System.out.println(n1);
        say();
        //静态成员
        System.out.println(n2);
        hello();

    }
}